Self-service terminals are frequently used in a variety of industries to provide customers with added convenience. Typical automated self-service terminals, such as automatic teller machines (ATMs) and airline check-in kiosks, occupy a relatively small amount of space and can be placed in convenient locations. These terminals can be used to perform basic functions usually performed by a personal representative. The use of self-service terminals can result in significant cost savings to the provider of the service and increased convenience for customers.
Self-service terminals are typically programmed to receive certain information from a user by use of a number of different input devices used to acquire that information. The relevant information is then transmitted to a centralized system for completion of transactions.
Many self-service terminals are embodied as “thick clients.” A thick client (also referred to as a fat client or rich client) typically differs from a thin client in that the thick client includes additional software and additional local processing abilities. Thick clients can support complex coding, complete software applications, web scripting and add-ons such as Java applets. Some thick clients obtain information for transmission to a central server by the use of Java applets or Active-X controls which control and interact with input devices as needed.
In a thick client system, applets and Active-X controls must be implemented on each individual client. These software implementations may differ from client to client depending on the operating system implemented on the client. Client functionality changes and updates are implemented by downloading new software to the individual thick clients. Typical thick client implementations may require individualized software updates and testing when software installed on the thick client is modified. If a large number of thick clients are deployed, these updates can be cumbersome and inefficient.
Programming individual client-server systems based on thick clients may also be more difficult. Software must be written for each individual type of client machine. These additional programming problems present deployment problems in installing the software on the clients. This in turn requires additional effort and resources for the deployment of thick client-server systems.